package it.fc.service.db;

import java.util.List;

import it.fc.bean.GiocatoriBean;
import it.fc.bean.SquadraBean;
import it.fc.bean.UserBean;
import it.fc.exceptions.FcException;
import it.fc.service.db.manager.DbCalciatoriManager;
import it.fc.service.db.manager.DbSquadreManager;
import it.fc.service.db.manager.DbUserManager;
import it.fc.service.interfaces.IDbService;
import it.fc.service.interfaces.IService;

//dbservice facade
public class DbService implements IDbService {

    DbUserManager       userManager       = new DbUserManager();
    DbSquadreManager    squadraManager    = new DbSquadreManager();
    DbCalciatoriManager calciatoriManager = new DbCalciatoriManager();

    @Override
    public void insertUser(UserBean user) throws FcException {
        userManager.insertUser(user);
    }

    @Override
    public void deleteUser(int idUser) throws FcException {
        userManager.deleteUser(idUser);
    }

    @Override
    public void updateUser(UserBean user) throws FcException {
        userManager.updateUser(user);
    }

    @Override
    public UserBean findUserByUsername(String username) throws FcException {
        return userManager.findUserByUsername(username);
    }

    @Override
    public List<UserBean> getUsers() throws FcException {
        return userManager.getUsers();
    }

    @Override
    public void activateUser(String uuid) {
        userManager.activateUser(uuid);
    }

    @Override
    public int getType() {
        return IService.DBSERVICE;
    }

    @Override
    public int insertSquadra(int idUser, String nome) throws FcException {
        return squadraManager.insertSquadra(idUser, nome);
    }

    @Override
    public List<GiocatoriBean> getSquadra(int idUSer, String role) throws FcException {
        return squadraManager.getSquadra(idUSer, role);
    }

    @Override
    public SquadraBean getSquadraByUser(int idUser) throws FcException {
        return squadraManager.getSquadraByUser(idUser);
    }

    @Override
    public SquadraBean getSquadraByName(String name) throws FcException {
        return squadraManager.getSquadraByName(name);
    }

    @Override
    public List<GiocatoriBean> getSquadra(int idUSer) throws FcException {
        return squadraManager.getSquadra(idUSer);
    }

    @Override
    public void deletePlayer(int idgiocatore) throws FcException {
        calciatoriManager.deletePlayer(idgiocatore);
    }

    @Override
    public List<GiocatoriBean> getGiocatoriList() throws FcException {
        return calciatoriManager.getGiocatoriList();
    }

    @Override
    public List<GiocatoriBean> getGiocatoriRemaining(List<GiocatoriBean> myTeam, String role) throws FcException {
        return calciatoriManager.getGiocatoriRemaining(myTeam, role);
    }

    @Override
    public GiocatoriBean findCalciatore(int idCalciatore) throws FcException {
        return calciatoriManager.findCalciatore(idCalciatore);
    }

    @Override
    public int insertCalciatori(int idSquadra, List<Integer> calciatori) throws FcException {
        return calciatoriManager.insertCalciatori(idSquadra, calciatori);
    }

    @Override
    public void deleteCalciatori(int idSquadra) throws FcException {
        calciatoriManager.deleteCalciatori(idSquadra);
    }

    @Override
    public List<GiocatoriBean> getGiocatoriList(String role) throws FcException {
        return calciatoriManager.getGiocatoriList(role);
    }

    @Override
    public void insertPlayer(GiocatoriBean g) throws FcException {
        calciatoriManager.insertPlayer(g);
    }

}
